home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 2 / Atari Mega Archive CD - Volume 2.iso / 8bit / cislib_a / mcrdtx.bin < prev    next >
Text File  |  1995-04-22  |  9KB  |  60 lines

  1. ✓⇨⇨MACRODOS/J. ALLEN/page @
  2.  
  3. JAN 12, 1983
  4. MACRODOS FOR ATARI
  5. BY JERRY ALLEN
  6. ALLEN MACROWARE
  7. 1906 CARNEGIE #E
  8. REDONDO BEACH , CALIFORNIA 90278
  9.  
  10.  
  11.  
  12. ❎⇨MACRODOS FOR ATARI❎ 400/800/1200
  13.  
  14. ⇧4
  15.     It's 12:30 a.m.  You're just finishing up with your new program when you decide to go to DOS, mistakenly thinking you had MEM.SAV on your disk.  Too bad you forgot to do a SAVE or LIST first!  There is absolutely nothing left to recover.  Or, maybe you remembered MEM.SAV but just to read the directory or unlock and erase a file, you sit through a minute or so of saving to MEM.SAV, DUP.SYS loading in, and then MEM.SAV reloading your original memory.  Add this to the fact that DUP.SYS and MEM.SAV wasted some 87 sectors on your disk, causing you to have to call DOS in the first place, to check the directory and delete a file which was non-essential.
  16.      Those out there familiar with DOS I, OSS Basic A+ (OSA+), or a year old article by Dennis Keathley, entitled, MicroDos, know that there is a better way.  ATARI, in releasing some 4000+ bytes for use by separating the File Management System (FMS) from the Disk Utility Package (DUP), left us with a few residual problems.  These involve time, space, and potential loss of work.
  17.      Then there was MACRODOS!  MACRODOS is an instant access disk utility package for a one or two drive DOS 2.0 system.  MACRODOS only uses three pages of RAM and therefore can be permanently co-resident in memory with the FMS.  You can pretty well forget about MEM.SAV.  And when you need to call DOS, you won't have to worry about losing your Basic or Assembler program when you return.  MACRODOS can also be used without a cartridge.
  18.      MACRODOS supports all the normal DUP functions excepting file and disk duplication; some of which can still be accomplished with the SAVE (binary file) command.  Also, MACRODOS incorporates a new feature to DUP systems:  HEX or DEC 'RUN' and address entries, and a permanently available hex/dec, dec/hex converter.  No more lost time looking for that subroutine, which must be around somewhere, or couldn't be loaded anyway because it conflicts with something that is in memory.
  19.      You will still be allowed the option of using ATARI DUP, but now, before you take that step, the directory can be safely checked to confirm that MEM.SAV is indeed there, in case it's needed.
  20.      MACRODOS resides in memory after the FMS, where ATARI DUP would normally load.  The big difference here is that it pushes MEMLO up to stay out of the way of your programs.  This is no cheap page 6 trick!  You will still have use of page 6, page 4, and even page 1 (yes, I have two programs which use part of page one).  When SYSTEM RESET or BREAK is hit; no problem.  MACRODOS will reinitialize itself, just like it should; unless you have exited to ATARI DUP, which resets the old vectors.
  21.      Some of the MACRODOS operations differ slightly, and, as you might expect, certain protocol is necessary.  If you have used ATARI DOS-DUP already, there is really little to learn, and you may even find that the new operation is easier to master and execute.  Before I begin with the commands, let's set a couple of ground rules.
  22.      First of all, you should be using DOS.SYS 2.0S in the same (or a smaller) configuration that comes on your master disk.  Actually, if PROGRAM 1 is used, you should be able to re-align the program for larger versions of DOS.SYS using more buffer space.  The source code will check MEMLO and change everything accordingly.  PROGRAM 2, however, which is for Basic users, is constrained to using a version of DOS.SYS which, after it has loaded, has a MEMLO of 7420 ($1CFC), or less.  Use the direct mode command as follows to check if in doubt:  PRINT PEEK(743)+256*PEEK(744).  Of course, if you are sure that your DOS.SYS has not been altered from the master disk, you shouldn't even have to check.  MEMLO will be 7420.
  23.      There are a few new prompts to familiarize yourself with.  First is the '>' prompt, which expects the return of a function command's first letter.  The directory, format, and write DOS functions use the prompt 'D#', and expect just a single number of 1-4, or just plain RETURN, which defaults to drive#1.  The format command also uses a '?' to ask if you're sure, and looks for a 'Y' or 'YES' to be returned prior to proceeding.  Functions requiring a filename use 'FN?'.  The device name 'D:','D1:','D2:', etc., must be included in the name.  Rename (RNM) requires only one device name and definitely none for the name after the comma.  The '@' prompt is used to mean 'at' or 'to' when an address input is required. Asterisk wild cards are still allowed.
  24. The commands: 225
  25. [D]IR-  used to read the disk directory.  The second prompt requires a drive# of 1-4 or RETURN only for drive#1.
  26. [R]NM- rename a file.  As in ATARI DUP, use the device name only with the old name (i.e.,D3:MAC*.*,AUTORUN.SYS).
  27. [*]LK- lock a file.
  28. [U]n*- unlock a file.
  29. [F]MT- format a disk. Answer 'sure?' (?) with a 'Y'. Give drive#.
  30. [E]RS- erase file.
  31. [C]RT- return to cartridge; Basic or Assembler.
  32. [S]AV- save binary file. Enter the filename at the prompt. Do not use commas! Enter the 'from' address at the '@' prompt. Then the 'to' address at the next prompt. The numbers given may be hex or dec or both, but must be preceeded by a '$' for hex or a '.' (period) if decimal. This command will allow appending to an existing file if a slash ('/') is used after the last letter of the filename. RUN and INIT addresses must be added by appending to a file. Poke (or use command C in DEBUG) 736,737 ($2E0,$2E1) for RUN, and 738,739 ($2E2,$2E3) for INIT. Remember to poke low, high. Then go to MacroDOS, and append the addresses you just changed to the file. Do not hit SRESET between the pokes and the save or 736-739 will be cleared.
  33. [L]OD- binary load.
  34. [@]RN- run at address. Hex or dec.
  35. [W]DS- write DOS.SYS (only).
  36. [$]>.- hex to dec. Enter '$' and # together. range: $00 to $FFFF
  37. [.]>$- dec to hex. Enter '.' and # together. range: .0 to .65535 
  38. [!]DS- escape to ATARI DOS (DUP.SYS). Remember that without MEM.SAVE on a write unprotected disk in drive#1, programs will be wiped out.  After using this command, you'll have to re-boot or load from ATARI DUP using MEM.SAV. (I don't use the letter 'A' because it is Atari's DUP DIR command and too easy to accidently use.  The "!" forces you to shift & therefore think a little more). 150
  39.      Assembler users may alter the commands table (CMDTAB) if they so desire. Just remember to change lines which check for command input to reflect the new command letter.  Also, revise TAB1 if necessary.
  40.      To append another AUTORUN.SYS program to the end of MACRODOS, such as a menu loader for BASIC, do the following:
  41.      Assuming you have MACRODOS up and running as AUTORUN.SYS, enter DOS, then load the other AUTORUN.SYS from a another disk.  SAVE with APPEND ("D:AUTORUN.SYS").  Enter the beginning and ending addresses at the  '@' prompts.  Then, if necessary return to the cartridge and POKE or otherwise change the INIT and/or RUN addresses as previously described. Return to DOS.  SAVE with append again to pick up the addresses just altered.  If you can't figure out the load addresses, use the following program:
  42.      10 OPEN#2,4,0,"D:YOURPROG.OBJ
  43.      20 FOR I=1 TO 6
  44.      30 GET #2, A
  45.      40 PRINT A
  46.      50 NEXT A
  47.      60 CLOSE #2
  48.      The first two bytes should be a header of 255 ($FF).  The next four bytes will be the beginning and ending addresses of the load (two byte numbers; low byte, high byte format).  See the ATARI disk drive manual for more information.  If the file loads to multiple address areas including RUN and INIT, after the first block of memory is loaded, OS checks for a new header of 255,255.  If it is there, the header is ignored, and the next four bytes will be the new from-to load addresses. Loading RUN with page 6 (1536) would look like: $E0(224),$02(2),$E0(224),$02(2),$00(0),$06(6) (without header).  With a little math and modification of the previous program you could find all the load addresses of any compound load file.
  49.      Hope you find MACRODOS useful.  We here at A